1. Field of the Invention
The present invention relates generally to computer graphics architecture and, more particularly, to a method and apparatus for multi-level demand caching of texture images for mapping on geometrical primitives in a graphics display device.
2. Description of the Related Art
Prior art graphics display devices have the ability to display three-dimensional polygons (i.e., primitives) with texture images mapped on these polygons. These texture images give the computer graphics a realistic or life-like appearance. For example, a texture image may be a picture of a brick facade for application to a three-dimensional polygon representing the framework of a house. Or, alternatively, the texture image may be of a wood grain texture applied to a primitive that forms the shape of a desk. To improve the realism of these graphics, a greater variety of these texture images is desirable. And, consequently, more computer memory is required to store this growing collection of texture images.
Referring to FIG. 1A of the drawings, a prior art graphics architecture (hereinafter referred to as the "push" architecture) for the retrieval of these texture images from memory is shown. This architecture requires a CPU 110 to "push" the texture images from a main memory 130, via a core logic 120, to a texture memory 160, which is considerably smaller and quicker than the main memory 130. The core logic 120 is a chipset that functions to manage the main memory 130 on behalf of the CPU 110. Subsequent to "pushing" the texture from the main memory 130 to the texture memory 160, the desired portion of the texture is then "pulled" from the texture memory 160 to a small on-chip cache 150 resident on a graphics accelerator 140. This architecture has the advantage of providing quick access to desired portions of a particular texture from the texture memory 160, which allows a speedier alternative to retrieving the desired portions of the texture directly from the slower main memory 130. However, while this architecture provides a speedier access to textures stored in the graphics accelerator 140, it suffers from several disadvantages. It requires the CPU 110 to actually download the particular texture for use by the graphics accelerator 140, which increases the complexity of CPU processing. Furthermore, because the size of the texture memory 160 is constrained by the total system cost, the "push" architecture limits the amount of textures that can be used by the application running on the CPU 110, thereby limiting the graphics capabilities of the graphics display device. Moreover, the "push" architecture requires that the entire texture be pushed to the texture memory 160, even though only a few texels (i.e., texture pixels) of the entire texture are typically needed.
To reduce the complexity involved by having the CPU 110 literally "push" the texture to the graphics accelerator 140 and also to alleviate the texture size limitations, another approach known as the Accelerated Graphics Port (AGP) architecture had been proposed. Referring to FIG. 1B, a diagram is shown illustrating such an AGP architecture. The graphics accelerator 140 "pulls" the desired portion of the texture from the main memory 130 and stores this portion of texture within its small on-chip cache 150. Thus, the CPU 110 does not itself retrieve the textures from the main memory 130, but rather, the graphics accelerator 140 accomplishes this task. While this architecture alleviates the complexity of the CPU processing and allows the CPU's application to use more texture than it otherwise could have in the "push" architecture, it also suffers from its own disadvantages. The AGP architecture requires that all of the texture is pulled from the main memory 130. As previously mentioned, a drawback to using the main memory 130 is that its retrieval rate is significantly slower than the retrieval rate of the "push" architecture's local texture memory 160. As a result, the computer system's graphics performance is adversely impacted by the slower retrieval of these textures from the main memory 130.
A possible solution to this problem may be the use of a large high-speed main memory for a quicker access to the stored textures. However, while large-capacity high-speed memory is available, it is quite expensive. And, using such memory could easily double the cost of the computer, thereby placing the personal computer out of reach (from a monetary standpoint) for a number of people for which it was originally intended. Thus, while there is an ample amount of texture that can be used by a particular application running on the CPU 110 in the AGP architecture, the amount of time required for the texture to be applied in the graphics display device is significantly increased due to the retrieval of textures from the slower main memory 130.
The present invention is directed to overcoming, or at least reducing the effects of, one or more of the problems set forth above.